Well, I do need to be fair here. The language itself isn't terrible, but it allows you to program in a bad way too easily, allowing you to pick up bad practices. It's implementation is old. The only people who really use it are hobysists.
1 Is QBasic a language for beginners?
Not anymore. My own suggestion would be to start with Racket and the free book HTDP (standard at big universities), but take that with a grain of salt.
2 How is it different to modern languages like c#?
The first thing is the community. In modern languages, people are very concerned about the best programming practices, where as in basic you'll see a lot of example code using GOTO's all over the place, etc... You'll pick up bad habits. Also, modern languages have a larger community, and more people to help you, and more people to share code with.
The second thing is implementation. QBasic is limited to 16-bit dos programs. You would be limited to old text-based programs in dos. With modern languages, you'll be able to make more fully featured programs, like games, browsers, servers, websites, operarting systems, scientific computing, etc...
A third thing is QBasic is quite limited in features. (Limited data structures, no first-class functions, no Object Oriented programming, no garbage collection, no threading, no GPU 3D graphics, etc...).