I am not able to get the result when joining two tables with where clause with OR condition
The join happens - logically - before the WHERE clause is applied. You can use an EXISTS, moving the join to a subquery:

SELECT p.* 
FROM projects  p
WHERE p.project_manager_id = 1
   OR EXISTS
      ( SELECT 1
        FROM project_user_cross  c
        WHERE c.project_id = p.id 
          AND c.user_id = 1
      ) ;