Tio hace tiempo alguien tenia un problema similar y se soluciono con un if te dejo un ejemplo seguro con eso resulves, aunque no se si iff corra en mysql ya que lo utilizaron en access
Esta consulta recupera los codcat del 01 al 03 y coloca en negativo los valores del codcat=03
sintaxis:
IIF(condicion,verdadero,falso)
Código:
SELECT CodProd, NomProd, CodCat, IIf(codcat='03',(-0)-precioventa,precioventa) as NUEVO_NOMBRE
FROM Producto
WHERE codcat Between '01' And '03'