Può usare SIGN per ordinare i numeri positivi in alto, quindi prendi il valore assoluto con ABS per ottenere l'ASC/DESC desiderato.
SELECT * FROM theTable
ORDER BY SIGN(col) DESC, ABS(col)
MODIFICA
Come ha sottolineato Nahuel, quanto sopra ordinerà gli 0 a metà tra positivo e negativo. Per raggrupparli invece con i positivi, puoi utilizzare un CASE
invece (o, se la tua colonna è solo numeri interi, il leggermente magico SIGN(col + 1)
)
SELECT * FROM theTable
ORDER BY
CASE WHEN col >= 0 THEN 1 ELSE 2 END,
ABS(col)