Pode usar SIGN para classificar os números positivos para o topo, pegue o valor absoluto com ABS para obter o ASC/DESC desejado.
SELECT * FROM theTable
ORDER BY SIGN(col) DESC, ABS(col)
EDITAR
Como Nahuel apontou, o acima classificará os 0's no meio entre positivo e negativo. Para agrupá-los com os positivos, você pode usar um
CASE
em vez disso (ou, se sua coluna for apenas números inteiros, o ligeiramente mágico SIGN(col + 1)
) SELECT * FROM theTable
ORDER BY
CASE WHEN col >= 0 THEN 1 ELSE 2 END,
ABS(col)