Предполагая, что ваш список кодов хранится в таблице, скажем, 'dbo.codes', с полем 'code', содержащим значение, вы можете избежать предиката CONTAINS и использовать INNER JOIN между двумя таблицами, используя LIKE.
DECLARE @stmt1 VARCHAR(MAX)
SET @stmt1 = 'INSERT INTO dbo.abcd
SELECT DISTINCT [F].[company], [F].[address], [F].[address2], [F].[zip], [F].[zip4],
[F].[city], [F].[state], [F].[telephone_number], LOWER([F].[email]),
[F].[name], [F].[fname], [F].[mname], [F].[lname], [F].[title_full]
FROM dbo.filter AS F INNER JOIN dbo.codes AS C ON F.code LIKE ''%'' + C.code + ''%''
WHERE (F.id in (''7'',''8'',''11'',''15''))';
EXEC (@stmt1) AT [server]