What about ...
select Product_ID
, MAX( case when CountryCode = 'USA' then AlternateProductID else null end ) AS USA
, MAX( case when CountryCode = 'UK' then AlternateProductID else null end ) AS UK
, MAX( case when CountryCode = 'SGP' then AlternateProductID else null end ) AS SGP
from mapping
group by
Product_ID