I was 7 when I learned to program. I was taught how to draw graphics in BASIC on an Apple ][. Not having to draw every point manually was a great motivation to learn loops. The rest is history.
Kids love graphics and quick results. These days, I would teach a kid programming in Swift, if you have a Mac, because the instantaneous results in the other pane and the graphics and animation capabilities will make it fun. If it, I'd use Python, because I've been calling it the new Basic for years. All the beginner programmers immediately get defensive when I say that, while the more experienced ones chuckle. Proof enough that it's the new Basic?
Remember, it doesn't need to be writing a game to make it fun. That's a little too tough at age 7; not because the programming for a simple game is tough, but because kids that age usually can't yet wrap their heads around what makes games fun. Because of this, they have a really hard time coming up with something fun, and they can end up disillusioned from the experience of doing a lot of hard work just to make something boring. Also, remember that what makes programming fun is the reward from figuring out how to make something work, so at this age, resist teaching data structures and algorithms. Instead, just give some trivial examples and let them play.