Witam,
uzyj LEFT JOIN'a:
SELECT users.id, users.login, count( komentarze.TO ) AS liczba,
count( k1.TO ) AS pozytywne,
count( k2.TO ) AS neutralne,
count( k3.TO ) AS neugatywne
FROM users LEFT JOIN komentarze ON komentarze.TO = users.id
LEFT JOIN komentarze AS k1 ON k1.TO = users.id AND k1.typ=2
LEFT JOIN komentarze AS k2 ON k2.TO = users.id AND k2.typ=0
LEFT JOIN komentarze AS k2 ON k2.TO = users.id AND k2.typ=1
GROUP BY users.id, users.login ORDER BY liczba DESC LIMIT 0, 10
ale najlepiej bedzie jesli do tabeli users dodasz 3 pola z ilosciami poszczegolnych typow komentarzy, bo przy sporej ilosci uzytkownikow i komentarzy zatrzesz silnik baz danych powyzszymi zapytaniami

Jesli dodasz te pola to oczywiscie nie aktualizuj tabeli users przy kazdym dodanym/usunietym komentarzu, tylko wykonuj aktualizacje pol z ilosciami komentarzy np. co pol godziny.
Chociaz skoro masz problem z tak prostym zapytaniem to jestem prawie pewien ze nigdy nie bedzie tam az tylu uzytkownikow i komentarzy zeby myslec o jakiejs optymalizacji, wiec mozesz zostac przy obecnym rozwiazaniu.
Pozdrawiam