Qué extraño. ¿Qué tipo de dato guardas en el campo 'valor'?
Fíjate las pruebas que hice:
Código MySQL:
Ver originalQuery OK, 0 rows affected (0.02 sec)
Query OK, 1 row affected (0.00 sec)
Query OK, 1 row affected (0.00 sec)
Query OK, 1 row affected (0.00 sec)
Query OK, 1 row affected (0.00 sec)
mysql
> SELECT IF(valor
= -0.001, 'Sin valor', valor
) valor
FROM valores
;+-----------+
| valor |
+-----------+
| -2 |
| 3 |
+-----------+