Updated answer
So it seems that @mfr_id is a varchar. To avoid the syntactic issue use the answer in OMG Ponies post.
But you also say that it is storing the string "1 2, 3, 4.....". So semantically are you wanting the IF statement to be true if it contains the value '5'?
If so you might need something like this
set @mfr_id = REPLACE(@mfr_id, ' ','')
if ((@mfr_id LIKE '5,%') OR (@mfr_id LIKE '%,5,%') OR (@mfr_id LIKE '%,5'))
Original Answer - Obsolete
if(CONVERT(int, @mfr_id) = 5)
should do the trick hopefully. See http://msdn.microsoft.com/en-us/library/ms187928.aspx for details. Although actually I think it should be implicitly converted. What is the value of @mfr_id? It should tell you this in the error message I think.