Czekaj, czekaj. Collision_line nie zwraca przecież id, tylko wartość logiczną, true lub false.
Być może jest tak, jak mówisz, czyli zwraca false lub id obiektu, czyli, jakby nie patrzeć, true. Wówczas sprawdzasz z poziomu każdego obiektu, czy przechodzi on przez tę linię.
Czyli:
GML
with ( all )
{
if ( collision_line( x1, y1, x2, y2, id, false, false ) )
{ (...) }
}