Best way to include AND exclude?
You can use NOT EXISTS for this purpose.

SELECT DISCTINCT
    prod_id
FROM
    products p1
WHERE
    cat_id IN (10, 11)
    AND NOT EXISTS (SELECT 1
                    FROM   products p2
                    WHERE  p1.prod_id = p2.prod_id
                           AND cat_id = 12);