Finding an entirely new foundational problem and solving that by designing a generic, reusable solution is incredibly hard. Only very few people luck out and succeed in doing that.
The vast majority of modern technology are mainly improvements on past solutions. And the process is entirely darwinistic: only those improvements that come with the least amount of friction will be adopted by a large enough number of users.
The same is true for science. Few people get to crack truly foundational problems. Most people work on different ideas and approaches that refine existing solutions, until the scientific community converges around a new incumbent solution or idea. Then the cycle begins again when a new idea or solution enters the domain. Rallying our collective brain power towards a few or even a single idea or solution will slow that feedback cycle.
So, working on a variation of an existing thing isn't necessarily bad. Your execution may be better then the incumbent solution and uproot the status quo.
There are also other reasons why working on an existing problem may yield benefits:
You learn more about the process. For instance, a simple todo application isn't interesting in itself. But going through the process of building one and finding out how to do that efficiently: that's where you'll find value. Those experiences and lessons you take to the next project which may be your own or part of a bigger mission or vision.
If you work with other people, you are practicing your communication skills and your people skills. Both are hugely valuable as well. The most impact you can have isn't necessarily through writing code on your own, but by coaching and supporting others; clearing impediments and clarifying problems by reframing them.
If you cling on to the notion that building something entirely new is the only relevant measure of success, you set yourself up for failure.