Looking through the PriorityQueue implementation, I couldn't really tell why this restriction is necessary. They use an Object array to represent the heap and store items from index 1 vs index 0 to help the math. They also have a - int size - that keeps track of the number of elements in the PriorityQueue.
Seems like they could have made this work even for a PriorityQueue with an initialCapacity of 0. This could avoid some bugs from the call-site where a PriorityQueue is initialized with an initialCapacity obtained from another source (ex: the number of records that match a certain criteria in a table) and this could very well be zero.
Andrew Hayley who made this patch - http://gcc.gnu.org/ml/java-