I've figured what's wrong with my query :-D
SELECT Point.id, Point.geom, Box.Postcode,
CASE
WHEN Box.postcode = 'A' THEN 'A'
WHEN Box.postcode = 'B' THEN 'B'
WHEN Box.postcode = 'C' THEN 'C'
ELSE 'No postcode'
END AS PointPostcode
WHERE ST_Intersects(Box.geom, Point.geom)