Я думаю, что вы не должны использовать левое соединение при соединении таблицы "проекты". Кроме того, ваша группа построчно должна быть исправлена. Пожалуйста, попробуйте запрос ниже.
SELECT u.id,u.full_name,u.type,Count(pu.id_project) AS assigned_projects
FROM users AS u
JOIN groups AS g ON g.id = u.group_id AND g.type = 0
LEFT JOIN project_user AS pu ON u.id = pu.id_user
JOIN projects AS p ON pu.id_project = p.id AND p.status = 1
GROUP BY u.id,u.full_name,u.type
ORDER BY u.type, u.id ASC
РЕДАКТИРОВАТЬ: Если вы хотите видеть всех пользователей, даже если для этого пользователя нет назначенного активного проекта, вам нужно использовать ниже (Сумма с case-when вместо COUNT и удалить проверку статуса в строке соединения):
SELECT u.id,u.full_name,u.type,SUM(CASE WHEN p.status = 1 then 1 else 0 end) AS assigned_projects
FROM users AS u
JOIN groups AS g ON g.id = u.group_id AND g.type = 0
LEFT JOIN project_user AS pu ON u.id = pu.id_user
JOIN projects AS p ON pu.id_project = p.id
GROUP BY u.id,u.full_name,u.type
ORDER BY u.type, u.id ASC
РЕДАКТИРОВАТЬ 2: Вот пример данных, подготовленных в MSSQL. Вам нужно будет удалить # символов для MySQL.
create table #users (id int, groupid int, fullname varchar(50))
create table #groups (id int, [type] int, name varchar(50),[status] bit)
create table #projects (id int, code varchar(50), [status] bit)
create table #project_user (id_user int , id_project int)
insert into #users values (1,4,'Jescie'),(2,1,'Amity'),(3,1,'Ivy'),(4,1,'Jesse')
insert into #projects values (1,'p001',0),(2,'p002',1)
insert into #groups values (1,0,'G1',1),(2,2,'G2',1),(4,1,'G4',1)
insert into #project_user values (5,2),(4,2),(3,2),(4,1)
SELECT u.id,u.fullname,g.[type], SUM(CASE WHEN p.status = 1 then 1 else 0 end) AS assigned_projects
FROM #users AS u
JOIN #groups AS g ON g.id = u.groupid AND g.type = 0
LEFT JOIN #project_user AS pu ON u.id = pu.id_user
LEFT JOIN #projects AS p ON pu.id_project = p.id
GROUP BY u.id,u.fullname,g.[type]
ORDER BY g.[type], u.id ASC