No va a poder convertirlo a DECIMAL, porque ha usado un VARCHAR para poder guardar el valor con separadores de miles, cosa que no se debe hacer jamás.
Debió usar un campo DECIMAL; ahora, para poder ordenar los valores primero tiene que expurgarlos de basura (los separadores), reemplazar la coma por el punto, si la usó, y recién allí podrá convertir el valor para ordenarlo.
Es un error, producto de suponer que los valores numéricos se almacenan como cifras, cuando en realidad se almacenan como
binarios.
Te conviene realizar la conversión de la columna a un tipo DECIMAL, para poder tener el valor un formato compatible con todos los sistemas. Eso, antes de preocuparse por ordenar...
Quedaría algo así:
Lo que sería muy engorroso, para aplicarlo cada vez que debas modificar los
dirty data que tienes en la base.
El problema de representar un valor '500000.23', como '500.000,23', es un asunto que se resuelve en la consulta, o bien en la interfase, y no usando un tipo de campo que no corresponde (y que además termina necesitando más espacio de disco).