Robert explained it, but I just wanted to add something.
It was returning true when it should have been returning false.
It DOESN'T return true or false at all. It returns the ID of the instance with which it collided with or -4 (aka, the constant "noone") if it didn't collide with anything. It's just that in GM before GM:S anything <=0 was false and anything >0 was true. This is not true in C/C++. Just as Robert quotes - anything other than 0 is true. So -4, which was "false" in GM, is true ENIGMA. And so it is actually impossible for the function to return false if used like this:
if (collision_line(...))
This is basically as if you wrote:
if (true)
Instances can't have an ID of 0 either, so it shouldn't ever have collision_line returning 0.
So the correct way to use collision functions in ENIGMA is this:
if (collision_line(...)!=noone)