No puedes usar el IN cláusula como esa. Se compila en un único cadena en su IN cláusula. Pero un IN la cláusula necesita separar valores.
WHERE id_campo not in (@idcamposexcluidos)
compila a
WHERE id_campo not in ('817,803,495')
pero debería ser
WHERE id_campo not in ('817','803','495')
Para superar esto, use SQL dinámico o en MySQL, puede usar FIND_IN_SET :
SET @idcamposexcluidos='817,803,495';
...
WHERE FIND_IN_SET(id_campo, @idcamposexcluidos) = 0
pero usando una función como FIND_IN_SET() no puede hacer uso de índices.