look at the post from GSquared regarding the StringParser in this thread: http://www.sqlservercentral.com/Forums/Topic439094-338-2.aspx
with it your statement becomes:
select * from table join dbo.stringparser(@id_list, ',') as list
on table.id = list.parsed
or
select * from table where id in (select parsed from dbo.stringparser(@id_list, ','))