Relation Subtraction wrong result
You might use NOT IN instead:

SELECT DISTINCT maker 
FROM Product 
WHERE type='pc' 
  AND maker  NOT IN
 (
    SELECT maker 
    FROM Product
    WHERE type='b'
      AND maker IS NOT NULL -- to prevent empty results
 );


Caution: This will not work correctly with a NULL maker.

The recommended solution is NOT EXISTS, but you need a Correlated Subquery:

SELECT DISTINCT maker 
FROM Product AS p1
WHERE type='pc'
  AND NOT EXISTS
 (
    SELECT maker
    FROM Product AS p2
    WHERE type='b'
      AND p1.maker = p2.maker -- correlation to the outer SELECT
 );


If MySQL supported EXCEPT it would be a simple

SELECT maker FROM Product WHERE type='pc'
EXCEPT
SELECT maker FROM Product WHERE type='b';