Queries should avoid using "select distinct" unless absolutely required - which isn't the case here. To mimic the effect of the "My Projects" portlet you need to filter by the current user id and that prlist.prname = 'prHotList' and prlistmember.prtablename = 'SRM_PROJECTS'. Then joining inv_investments & odf_ca_project allows you to list any needed columns
from prlist l
inner join prlistmember lm on l.prid = lm.prlistid and lm.prtablename = 'SRM_PROJECTS'
inner join inv_investments inv on lm.prrecordid = inv.id
inner join odf_ca_project ocp on inv.id = ocp.id
where l.prname = 'prHotList'
and l.user_id = @WHERE:PARAM:USER_ID@
or: If you approach this from another aspect, wanting to know if the user has it "hotlisted" or not, then
, case when lm.prrecordid IS NULL then 'add' else 'remove' end
from inv_investments inv
left join prlistmember lm on lm.prrecordid = inv.id and lm.prtablename = 'SRM_PROJECTS'
inner join prlist l on l.prid = lm.prlistid and l.prname = 'prHotList' and l.user_id = @WHERE:PARAM:USER_ID@
Retrieving data ...