MySQL má nezdokumentovanou syntaxi pro řazení nul jako poslední. Umístěte znaménko mínus (-) před název sloupce a přepněte ASC na DESC:
SELECT * FROM tablename WHERE visible=1 ORDER BY -position DESC, id DESC
Je to v podstatě převrácená hodnota position DESC umístění hodnot NULL na poslední místo, ale jinak stejné jako position ASC .
Dobrá reference je zde https://troels.arvin.dk/db/rdbms# select-order_by