O MySQL tem uma sintaxe não documentada para classificar os nulos por último. Coloque um sinal de menos (-) antes do nome da coluna e mude o ASC para DESC:
SELECT * FROM tablename WHERE visible=1 ORDER BY -position DESC, id DESC
É essencialmente o inverso da
position DESC
colocando os valores NULL por último, mas o mesmo que position ASC
. Uma boa referência está aqui http://troels.arvin.dk/db/rdbms# select-order_by