Could you try this? You can test here. http://www.sqlfiddle.com/#!2/73f61/2
I have added AND child_tab.basic_user_id = parent_tab.basic_user_id
ON clause. Because You are doing LEFT JOIN
SELECT parent_tab.company_id, COUNT(child_tab.company_id)
FROM company_user parent_tab LEFT JOIN company_user child_tab
ON child_tab.parent_id = parent_tab.company_id
AND child_tab.basic_user_id = parent_tab.basic_user_id
WHERE parent_tab.company_id IN (1337)
AND parent_tab.basic_user_id = 23
GROUP BY parent_tab.company_id;