MySQL har en odokumenterad syntax för att sortera nollor sist. Placera ett minustecken (-) före kolumnnamnet och växla ASC till DESC:
SELECT * FROM tablename WHERE visible=1 ORDER BY -position DESC, id DESC
Det är i huvudsak inversen av position DESC
placera NULL-värdena sist men annars samma som position ASC
.
En bra referens finns här http://troels.arvin.dk/db/rdbms# select-order_by