Правильно будет вместо type (0,1) просто сделать сумму знаковой, положительные - приход, отрицательные - расход. И будет тогда:
SELECT `login`, SUM(IF(`sum` > 0, `sum`, 0)) AS `in`,
SUM(IF(`sum` < 0, `sum`, 0)) AS `out`, SUM(`sum`) AS `total`
FROM `info_user`
GROUP BY `login`