A parte i println di log che sono ok, non è quello il punto, purtroppo non ci siamo ancora. Innanzitutto non serve usare un indice, anche perché una Queue non è indirizzabile per indice. Poi oltretutto hai fatto add(i) e addFirst(i) ma così non ha senso, perché inserisci il numero dell'indice (0, 1, 2 .....), non il valore a quella posizione.

Ripeto: è sufficiente il enhanced for ("for-each") o un Iterator esplicito e poi inserire (sempre) in testa. Non serve nemmeno isEmpty().

Ah, poi il metodo sarebbe più corretto come hai scritto all'inizio, cioè che ritorna un Queue.

public static Queue<Integer> reverse( Queue<Integer> input )


P.S. me ne sono dimenticato prima ma aggiungo: per cortesia non postare codice "colorato", perché è difficile da quotare.