Det burde virke. Har du prøvet at vise det, hvad din CAST(række SOM DECIMAL) producerer?
Indsæt eksempel på data, som du forsøger at sortere. Måske har du nuller der eller tal, der ikke kan passe ind i decimaltypen.
Hvilken version af mysql bruger du? Måske er årsagen denne (fra mysql-hjælp):