ya encontre el error de hecho es muy tonto
en esta sentencia:
set @producto = SUBSTRING(@producto, 1,len(ltrim(@producto))-1) la utilizo para quitarle la ultima coma y como le resto -1 marca error por que cuando trae 0 e intenta quitarle 1 pues truena la aplicacion
, bueno al menos ya tengo un problema menos en mi vida
muchas gracias por tu ayuda iislas
en verdad se te agradece