Twój problem polega na tym, że masz dwa (lub więcej) store
wiersze i dwa (lub więcej) pics
wiersze dla pojedynczego goods
wiersz, otrzymujesz iloczyn wszystkich kombinacji wierszy.
Aby to naprawić, wykonaj agregację przed dołączeniem:
SELECT
good.id,
good.title,
IFNULL(s.storerest, 0) AS storerest,
IFNULL(p.picscount, 0) AS picscount
FROM goods
LEFT JOIN (
SELECT goodid, sum(rest) AS storerest
FROM store
GROUP BY goodid
) s ON (goods.id = s.goodid)
LEFT JOIN (
SELECT goodid, count(id) AS picscount
FROM pics
GROUP BY goodid
) p ON (goods.id = p.goodid)