Ваш запрос должен работать.Но я бы написал его так:
SELECT u.*, po.*
FROM user u JOIN
pending_order po
ON u.id = po.user_id;
Это должно вернуть только пользователя 2, у которого есть отложенный ордер.
Если вы хотите, чтобы только пользователи имели отложенные ордера, используйте `exist:
select u.*
from user u
where exists (select 1
from pending_order po
where u.id = po.user_id
);