MySQL tiene una sintaxis no documentada para ordenar los valores nulos en último lugar. Coloque un signo menos (-) antes del nombre de la columna y cambie el ASC a DESC:
SELECT * FROM tablename WHERE visible=1 ORDER BY -position DESC, id DESC
Es esencialmente el inverso de position DESC
colocando los valores NULL en último lugar, pero por lo demás igual que position ASC
.
Una buena referencia está aquí http://troels.arvin.dk/db/rdbms# seleccionar-order_by