Imprime la consulta justo antes de imprimirla y observa si está bien formada, si puedes también comparte los resultados.
A simple vista no se ve ningún error, así que no podemos adivinar qué está mal.
Aunque puedo preguntar, ¿para que incrementas $i si siempre vas a obtener una sola columna en $row?
Es decir, el SELECT que haces extrae únicamente una columna, si sólo hay una columna basta con acceder mediante su nombre o bien, usando el índice [0] y sin necesidad de incrementar un índice que en la siguiente iteración no tendrá lugar. ¿O sí?
Mientras iteras en el while() todo marcha bien, excepto que iteras la variable $i sin razón aparente.
No sé, a lo mejor es algo nuevo para mi.