A Criterion context of<>0 behaves as in For <>, if the value is not empty it matches any cell content except the value, including empty cells. (as defined in ODF OpenFormula (ODFF) 4.11.8 Criterion).
Instead, use =SUMPRODUCT($M$1:$M79<>0;$I$1:$I79)
Yes, the <> operator (not to be confused with a criterion) behaves different.