Now, I don't know what to say to future employers / how to portray myself in the best possible light.
Simply write about what you did - and think of positive adjectives. Were you left to work alone on fixing problems? Then you "prioritised and fulfilled tasks independently". Did you talk to customers directly? Then you probably "coordinated with customers to collect requirements, obtain feedback and provide support".
The not-dev related stuff can also be a bonus - developers are expected to be fairly broad-skilled, especially with devops.
I'm also worried it'll look bad that I worked for my dad - could seem a bit nespotistic and/or unambitious. Not sure what I could say to that.
You don't have to say anything about that in your resume or interview. You simply worked at ABC Software.
Of course, if your dad's company is Anonymousjon Sr Software, that is a bit obvious - but just put it in. I doubt anyone will bat an eyelid on reading it in your resume. If someone mentions it at interview, simply say "there was a position open when I was looking, but now I'm ready to move on." Three years in a first job is pretty normal, if not a bit longer, so that's all that needs to be said, really.
I don't know how to explain this or how to write this in my CV. I also don't want to mention the app or share code of my app.
You should mention it - and maybe even provide a demo (up to you). But definitely mention it and talk about its development - for one, it shows that you're an independent learner and that you are enthusiastic. Secondly, you will need to ensure in your potential contract that you keep the ownership of the app and code (some companies do like to have clauses that give them ownership of all your work even if some in your own time).
My problem is also that I am probably better than the average junior developer and would be selling myself short if I applied as a junior. However, to call myself mid-level is probably also a bit of a stretch, since I must have quite a few gaps and have never worked in a team.
Just apply for some mid- level positions that you think you fit the skills requested, and are asking for about 3 years of experience. Get feedback from the interviewers of you can (most won't give more than a generic "other candidates were a better fit", but some may give good constructive advice).
If they don't pan out, lower your expectations a bit - prepare to learn and be ready to move up in a couple of years.
Another thing you can do about plugging the gaps - take a course. A bootcamp could be very helpful. Or start another hobby project to build up skills within knowledge with - plus you have something else to show off.