Quando você imprime uma PriorityQueue, ele não usa “poll” para pegar os elementos. Se você usasse “poll”, iria pegar os elementos na ordem “1”, “2” e “3” como você estaria esperando.
Em vez disso, toString() usa apenas o Iterator, e esse Iterator, em vez de pegar os elementos na ordem em que eles seriam recuperados pelo método “poll”, pega os elementos como eles estão organizados na estrutura de dados usada para implementar a PriorityQueue. A ordem não foi definida, tanto é que o Javadoc diz que os resultados não serão retornados na ordem natural.
De qualquer maneira, na prova isso não é pedido - na prova eles só perguntam como é que funcionam “offer”, “peek” e “poll”, não qual é a ordem do Iterator.