Cuidado con la lógica de las consultas, los paréntesis producen efectos en la evalaución de las condiciones.
El OR puesto como condicional de esa forma puede dar un resultado incorrecto, porque bastaría con que NEW.dinero fuese NOT NULL para ser TRUE, y es ano es la idea
Es mejor ponerlo como:
Es decir: Que sea NOT NULL o bien diferente de cero,
y además que sea diferente de lo que ya existe.