You should defintely fix your schema and store each value on a separate row rather than as a delimited list. See this famous SO post for a discussion on how bad it is to store delimited lists in a relational database.
That said, here is a solution to parse the delimited lists using a recursive query (available in MySQL 8.0 only). You can then aggregate by project:
with recursive cte as (
select
project_id,
replace(substring(concat(value, ' | '), 2, locate(' | ', concat(value, ' | '))), ',', '') val,
substring(concat(value, ' | '), locate(' | ', concat(value, ' | ')) + 3) value
from mytable
union all
select
project_id,
replace(substring(value, 2, locate(' | ', value)), ',', ''),
substring(value, locate(' | ', value) + 3)
from cte
where locate(' | ', value) > 0
)
select project_id, sum(val) total_val
from cte
group by project_id
order by project_id
Demo on DB Fiddle:
project_id | total_val
---------: | --------:
1 | 300000
2 | 100000
3 | 600000
If you want the total value for all projects, you can just change the outer query to:
select sum(val) total_val from cte