CASE WHEN with GROUP BY
You almost get it, try by putting SUM() at the beginning of the CASE statement.

SELECT   shop_id, 
         SUM(CASE WHEN currency= "GBP" THEN price ELSE 0 END) AS POUND, 
         SUM(CASE WHEN currency= "USD" THEN price ELSE 0 END) AS USDOLLAR
GROUP BY shop_id