Isso deve funcionar. Você já tentou exibir isso, o que seu CAST(row AS DECIMAL) produz?
Cole o exemplo de dados que você está tentando classificar. Talvez você tenha nulos ou números que não podem caber no tipo decimal.
Qual versão do mysql você está usando? Talvez o motivo seja este (da ajuda do mysql):