Você provavelmente está melhor usando a conversão implícita do MySQL:
select sum(trim(replace(col, '$', '')) + 0.0)
A conversão silenciosa incluirá centavos. Além disso, caracteres não numéricos após o número não causarão erro. O
trim()
removerá os espaços à esquerda que também podem afetar a conversão.