Hola rafaelg21:
 
Tu consulta es correcta (aunque no es necesario que pongas la palabra reservada AS para poner el Alias). Checa este script    
Código MySQL:
Ver original- Query OK, 0 rows affected (0.11 sec) 
-   
-     -> (1, 'AAAAAA', 306.25), 
-     -> (2, 'BBBBBB', 0), 
-     -> (3, 'CCCCC', 25.05), 
-     -> (4, 'DDDDD', 0), 
-     -> (5, 'EEEEEE', 150.25), 
-     -> (7, 'FFFFFFF', 1); 
- Query OK, 6 rows affected (0.03 sec) 
-   
- +------+----------+------------+ 
- | ID   | PRODUCTO | inv_totexi | 
- +------+----------+------------+ 
- |    1 | AAAAAA   |     306.25 | 
- |    2 | BBBBBB   |          0 | 
- |    3 | CCCCC    |      25.05 | 
- |    4 | DDDDD    |          0 | 
- |    5 | EEEEEE   |     150.25 | 
- |    7 | FFFFFFF  |          1 | 
- +------+----------+------------+ 
-   
- +------+----------+------------+ 
- | ID   | PRODUCTO | inv_totexi | 
- +------+----------+------------+ 
- |    1 | AAAAAA   |     306.25 | 
- |    3 | CCCCC    |      25.05 | 
- |    5 | EEEEEE   |     150.25 | 
- |    7 | FFFFFFF  |          1 | 
- +------+----------+------------+ 
Como verás filtra perfectamente aquellos precios iguales a cero...  
Hace tiempo me pasó un caso semejante, pero era por un problema con JSP. un reporte estaba mostrando un -0 como resultado, lo cual es una completa aberración, después de revisar la base de datos encontramos que el registro tenía un -1.0E-10 (es decir -0.0000000001) pero la manera en como estábamos recuperando el dato lo redondeaba a cero pero seguía tomando el valor negativo... no sé si este sea un caso parecido es decir si el resultado lo muestras desde una página o programa o directamente en la consola de MySQL. Verifica si en tu tabla tienes efectivamente un 0, o un valor muy pequeño, pero mayor a cero. 
Esto es lo único que se me ocurre que pueda estar pasando, no sé si algún otro forista tenga algo más que aportar. 
Saludos
Leo.