How to select values side-by-side
You don't mention what it is that does not work, but clearly:

 WHERE id_project = 1


matches 2 rows, so if the problem is duplicates, that is the root cause. Easiest to solve by adding distinct

SELECT DISTINCT 
(SELECT  value
 FROM    table
 WHERE   id_field = 1) AS field_1,
(SELECT  value
 FROM    table
 WHERE   id_field = 2) AS field_2
FROM table
WHERE id_project = 1;


Note that if id_field is not unique, you need a correlation against the outer select:

SELECT DISTINCT 
(SELECT  value
 FROM    table
 WHERE   id_field = 1
   AND   id_project = t1.id_project ) AS field_1,
(SELECT  value
 FROM    table
 WHERE   id_field = 2
   AND   id_project = t1.id_project ) AS field_2
FROM table as t1
WHERE id_project = 1;


Another option would be:

with t (id_project, id_field, value) as ( 
    values (1,1,'abc')
         , (1,2,'xfe')
         , (2,3,'ufj')
         , (2,4,'osj')
)
SELECT MAX(x.val1), MAX(x.val2)
FROM t
CROSS JOIN LATERAL (
    VALUES (CASE t.id_field WHEN 1 THEN value END
           ,CASE t.id_field WHEN 2 THEN value END)
) x (val1, val2)
WHERE t.id_project = 1;