Isso é apenas um palpite, mas talvez a conversão para inteiro forçará o MySQL a sempre dizer que é um inteiro.
SELECT CAST(SUM(price) AS SIGNED) FROM cakes WHERE ingredient = 'marshmallows';
SELECT CAST(SUM(price) AS SIGNED) FROM cakes WHERE ingredient = 'marshmallows';