I honestly believe that graphics is a skill-set you can learn just like programming. But like programming, it requires time and most developers can create games and would like to just as easily create graphics.. but remember where you were when starting programming, that's where your graphic skills are.
All game art is defined by rules and style. For pixelart there are simple rules on how to create a rounded edge, just blow up a pacman sprite, and notice how the outline of the circle is made.. that's the most simple example of graphical rules in pixel-art, and there are a lot of those little rules (aka tricks) to create certain shapes. Same goes for any other graphical art form (vector, 3d, etc). Look at examples and start copying them and then tweaking them (again, much like how you would learn how to program games, take example game code, and start tweaking it)
mechanics is playing many games, and prototyping. Sounds like you already do one of the ways to accomplish it. I work the same way, I come up with a specific little concept, and then I build it and iterate and play the shit out of it until it's fun or just time to move on to the next idea. Sometimes a game idea starts with an idea like "main player moves like this" or sometimes I start a design with "funny little sprite" and then I never know where I end up
don't worry about the tools, if you can make what you want to make with it, and run it on the target platforms you had in mind, then it's the right tool for you. I only recently started using LibGDX, but I only use the core of it (the part that get's me an opengl + audio + input setup and works cross-platform). All other code on top (actual engine of the game) is my own code.
This means my code can be ported fairly quickly as long as I have a rendering+audio+interface layer between my code and the platform I want it to run on.
finally, don't think too much about it, just do it
creating games is mostly the fun of creating, the end result doesn't matter. Especially if it's just as a hobby.