У вас соединение не в том порядке.
В LEFT JOIN
вы сохраняете все записи в таблице, написанные первыми (слева) .
Итак, присоединяйтесь в другом порядке (users
сначала / слева) , а затем группируйте по идентификатору таблицы пользователя, а не по user_id таблицы микросообщений ...
SELECT users.*, count( microposts.user_id )
FROM users LEFT JOIN microposts ON users.id=microposts.user_id
GROUP BY users.id