Probablemente sea mejor que utilice la conversión implícita de MySQL:
select sum(trim(replace(col, '$', '')) + 0.0)
La conversión silenciosa incluirá centavos. Además, los caracteres no numéricos que se encuentran después del número no provocarán un error. El trim()
eliminará los espacios iniciales que también podrían afectar la conversión.