I'm not sure but is it as simple as adding two single quotes to your statement around B1A?

Yours:

    DECLARE @SQL VARCHAR(8000); 
    SELECT @SQL = 'bcp "EXEC ispsSelectEmptyAsNull ''B1A'';" 
               queryout "F:\aaData\IPACostData\R15TData\2BSHAEOS_B1A_20121120.txt" 
               -f "F:\aaData\IPACostData\R15TData\tmpFormatCard_B1A.fmt" -T -S' +     
    @@SERVERNAME + ''; 
    EXEC xp_cmdshell @SQL;
    GO

Mine:

    DECLARE @SQL VARCHAR(8000); 
    SELECT @SQL = 'bcp "EXEC ispsSelectEmptyAsNull '''B1A''';" 
               queryout "F:\aaData\IPACostData\R15TData\2BSHAEOS_B1A_20121120.txt" 
               -f "F:\aaData\IPACostData\R15TData\tmpFormatCard_B1A.fmt" -T -S' +     
    @@SERVERNAME + ''; 
    EXEC xp_cmdshell @SQL;
    GO

You might even need an extra two single quotes around B1A.