There are certainly multiple ways of looking at this.
Language Features....I'd say it's gonna be the new structs and methods. Structs let you do so many things in a much easier way. We don't have to do workarounds to make things like vectors, or anything that could be a class or data type in other languages. And then methods go great with that because you have to have code that does things with these structs. Methods aren't something I use all that often on objects, because the auto-complete doesn't really work for it all that well, but for structs I use static methods constantly.
IDE features...I personally haven't used sequences yet, but I've seen lots of people say they are a gamechanger for them. And that makes sense. I'll likely end up using them when they get more feature-complete. I DO like how you can tweak objects' variables in the room editor. Before, you could only use instance creation events(which are still there). Now, you just declare the tweakable variables in the dialog instead of the create event, and then they are available. Note that this works even better with the whole parent/child object system, which I also love. The thing about that one though is that it ALSO counts as a language feature since you can use it in GML.
One thing that sets GML apart from just about any other language, is the ease of access. You can access about anything, about anywhere. You can easily access object instances by name, or you can specify names of specific instances in the room editor. You don't have to do some fancy call to find objects typically. And the with() constuct just lets you access ALL instances of any object, including children through the parent object. This access is there ALL THE TIME. You don't have to make code that does it, it just works right out of the box.