The specific answer to your question is like
(or charindex()
if you are using SQL Server or Sybase):
where @NewTotalProducts like '%'+@NewProductAdded+'%' and
@OldTotalProducts not like '%'+@NewProductAdded+'%'
First comment. If you have to use lists stored in strings, at least use delimiters:
where ','+@NewTotalProducts+',' like '%,'+@NewProductAdded+',%' and
','+@OldTotalProducts+',' not like '%,'+@NewProductAdded+',%'
Second comment. Don't store lists in strings. Instead, use a temporary tables or table variable:
declare @NewTotalProducts table (name varchar(255));
insert into @NewTotalProducts(name)
select 'ProductA' union all
select 'ProductB' . . .
Note: throughout this answer I have used SQL Server syntax. The code appears to be SQL Server.