In a project I made for a class, invisible sprites were used for a ton of things.
Detecting whether the player was in line-of-sight of an enemy (no raycasting functions in the language I was using, and it was an introductory course, so I didn't know how to do it myself yet)
Detecting whether the player sprite was in a particular position so an event could trigger.
Plopping down a "Hey, AI, the explosion will be
this big" invisible sprite so if they detect that they collide with the sprite they'll try to avoid the explosion.
A "use item" invis-sprite next to the player sprite which checked if usable items collided with it when the player hit the button.