Spending 3 hours doing simple resources gathering and then selling them for meaningful profit only works if there are NPCs to sell to.
I don't agree with that. If your characters have needs that have to be met (think The Sims), then all these resources that help meet your characters needs will be purchased by characters. You simply make it so one cannot possibly meet all their needs on their own. Do this by requiring a variety.
Let's take WoW for example. Buying normal food is basically worthless because it's not a need, it's a perk. But lets say WoW required that you eat a balanced diet to perform at your max. Anything but a proper diet and you would start being docked efficiency in damage and armor. This gives people an incentive to get food. Now let's say this means you have to eat meats, veggies, fruits, grains, dairy, and even sweets! That's 6 different kinds of food that you need in a decent amount of quantity. You couldn't possibly gather all that yourself to be efficient. So now if you give people a way to grow these resources but it requires a decent amount of time and care to do so, then these resources just became valuable and the AH will have a thriving market for them of people selling to other people.
Precisely why we need NPCs to buy from the player - to give a way for players to start from zero.
I don't think this is true at all. I can start from zero and start gathering resources that I know other players want and sell them to other players to make my fortune. For example again in WoW I could sell off all my gear and give away all my gold, and in a couple weeks of gathering resources I could have my fortune back from selling it to players (not NPC's) because there are resources that players want/need and don't have the time to do it themselves. If you think about it almost every need in the real world are needs we could all meet ourselves. We used to a long long time ago. Buying our needs is easier and so people will do that over spending huge quantities of their time in trying to meet their needs 100% on their own.
In my game for example, if I want to build a house for my character it'll take, for example, 10K lumber. That could take me a month or so to gather myself because I can't JUST gather lumber, I have to meet my other needs or food, water, clothing, entertainment, etc. So it's more efficient for me to go to the market and buy lumber. How do I get the money to buy lumber? When players start the game they are given x amount of money, so everyone has some money to start with. If I need to inject money into the game at all (print money) I can get creative and introduce treasures that people can find!