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