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 https://troels.arvin.dk/db/rdbms# select-order_by