Comparison and creating new column
IN ( SELECT ... ) is often an inefficient way to design a query.  There are two alternatives below.  Also, your IN was asking to fetch the entire array; this is probably causing terrible performance.  You only need to check for the "existence" of one customer.

Note that each formulation checks for one "customer" in Table B and does not fetch the entire table (as is done with your IN ( SELECT ... )).

Two approaches:

SELECT  Customer,
        IF(b.customer IS NOT NULL, 'Yes', 'No') AS "new customer"
    FROM  `Table A` AS a
    LEFT JOIN  `Table B` AS b USING(customer);

SELECT  Customer,
        IF(EXISTS (
                SELECT  1
                    FROM  `Table B`
                    WHERE  customer = a.customer ) , 'Yes', 'No'
          ) AS "new customer"
    FROM  `Table A` AS a;


LEFT implies that the row may be missing from Table B.  This is exactly what you want in order to produce "No".

EXISTS is a "semi-join".  It stops when it finds success; this can be handy if there could be multiple matching rows (which is not your case).