I found high level language unintuitive until I knew what they were doing behind the scenes. I tired Basic as my first language, but it left my confused and frustrated after a few days of trying. Then I tried ASM and it was a natural fit. Once I understood how ASM worked, I progressed to learning how compilers converted C into "ASM", then C++. I absolutely hate black-box magic. I need to know what is going on, at least in a pseudo-code kind of way. I must have a working mental model of what is going on. I didn't get into programming to code, I got into programming to tell computers what to do. I best know what I'm telling the computer.
This is all a matter of how well the language matches the task though, surely? If you're starting out with tasks that involve manipulating long lists, you really need a language with list support, and given that the majority of situations where anyone not in a designated dev role might want to code something is because they want to perform a series of operations on a moderately long dataset, that's the sort of computing we should be teaching.
I'm training to be a high school ICT/CS teacher, and I'm always looking at the "natural environment" of different languages, in order to avoid "hello world" type introductions. The natural introduction to C is to build extensions for the command line -- that's more or less what it was invented for. I can't imagine introducing Python without lists. And I think lists will always provide better opportunities for meaningful tasks -- playing with text generation, shopping lists, accounting etc.