If you already know HTML and CSS, you're off to a good start. It is a huge world, but there's no way to learn other than diving in and trying it out!
To answer your first question: unfortunately you cannot just take an existing HTML site and automatically import it into Concrete5 (or any CMS that I'm aware of). This is because in a CMS, the contents of each page are actually stored in a database, not in a file. One of the key points to understand about a CMS is that it separates the things that are the same on every page from the things that are different on every page. The things that are the same on every page (for example, the header, the footer, the general page layout structure, maybe parts of the sidebar, etc.) are for the most part your standard HTML and CSS. But the things that are different on every page (i.e. "the content") is NOT in HTML and CSS (and not even in a file -- as mentioned, it's stored in a database).
This is bad for you as someone who knows HTML and CSS, but it is great for you mother who has no clue. (And honestly, it's not that bad for you, because at the expense of making things a little more complicated, you get a lot of functionality for free, i.e. user login and registration, file uploading and management, etc.).
On with the questions...
I can't know for sure because every server is set up differently, but if I had to guess, the reason your new site is at www.mysite.com/concrete/ instead of www.mysite.com is because you created a folder on your server called "concrete" and installed Concrete5 there. Furthermore, I'd wager to guess you did this so you didn't overwrite the existing files that make up your old site (which is a good idea). The usual approach people take when in this situation is to build out the new site in that subdirectory (in your case, "concrete"), and then when it's all ready to go (it's been designed and content has been put in), you move it up to the top-level of the server directory. This keeps downtime to a minimum when "flipping the switch" from your old site to the new site. When this time comes, though, there are a few steps you need to take (I suggest heading over to the Concrete5.org forums when the time comes, you will get much more specific help there).
A word of advice: as long as you haven't gotten too far into this process yet, I strongly suggest renaming that folder from "concrete" to something else like "newsite" or "c5site" or ANYTHING other than just "concrete" -- the reason is because inside your concrete folder is another folder called "concrete", where the system files all live. This gets very confusing, and makes it much more difficult to communicate where files are located when you're trying to get help on forums (you will tell people something is in the concrete folder and they'll think it's in the other concrete folder, etc.).
More questions...
How do you apply a web design to a theme? Now we're getting to the good part! The short answer is:
1) Make one sample HTML/CSS page for every type of layout in your site (for example, one for the homepage, one for interior pages with a sidebar, and one for interior pages without a sidebar -- but it totally depends on the design you made). Each of these sample layouts is called a "template" (or sometimes in the concrete5 world they're called "Page Types").
2) Examine your designs and figure out what is going to be the same on every page and what is just sample content that will be different from page to page. For everything that's going to differ from page to page, delete it out of the template and replace it with this chunk of code:
<?php
$a = new Area('Main');
$a->display($c);
?>
That chunk of code is what tells the CMS that you want an editable content area there, meaning that your mother can change stuff in it without needing to use HTML (and without having to worry about accidentally messing up the overall page layout, because her changes are isolated to that one area). Note that the part that says 'Main' needs to be different for each of the areas on your page. A standard approach is to have two of those on a page -- one for the main content area and one for the sidebar. So one would have 'Main' and the other would have 'Sidebar' (doesn't really matter what those words are -- as long as they're different from each other on any given template page). The home page template, though, could be different -- maybe it doesn't have a sidebar at all but has three mini-columns in the middle where you can swap out chunks of text -- in that case you would have 3 of those chunks of code, one could be labelled 'Left Content', another could be ' Middle Content' and another could be 'Right Content'.
3) Do a bunch of other little things that aren't conceptually important but are needed to get it working.
I highly recommend heading over to concrete5.org site and checking out their how-to's (http://www.concrete5.org/documentation/how-tos/). Specifically, these might be of interest to you:
Also, take advantage of the forums over there. We are still a relatively small community but there are plenty of helpful people around.
Finally, in response to your last question about choosing the right tool -- well, I am biased because I think Concrete5 is the best tool for me and the kinds of websites I build and the way I think. It's a weird situation though -- if you ask someone who specializes in Wordpress and knows it well, they will say Wordpress is the best tool. If you ask someone who specializes in Drupal and knows it well, they will say Drupal is the best tool. So I cannot give a definitive answer as to which is the best for you, but as someone who has built fairly substantial websites in most of the CMS's out there (Wordpress, Drupal, Joomla, Silverstripe, etc.), I can tell you why it's the best tool for me:
It has the easiest-to-use editing interface for small- to medium-sized sites that are mostly informational in nature (e.g. marketing sites, brochure sites, ecommerce catalogs, artist portfolios). This is because, as Joel would tell you, the program model closely matches the user's mental model of what a website is -- a bunch of web pages. So in Concrete5, you go to a page on the site and click on stuff to edit it. Whereas in most other CMS's you go to a separate area of the site (an administrative dashboard) where you are presented with an abstract representation of the site, usually in some hierarchical form -- two things non-experts have a hard time grasping (abstract things and hierarchies).
It has the most straight-forward theming process if you are coming to it with a completed HTML/CSS design. Wordpress is pretty good about this to, but in my experience, systems like Drupal and Joomla are not as designer-friendly because they require you to split up your design into lots of different pieces that are then stitched together by the system, which often forces you to add markup that you don't really want to be there (from a design point of view).
If you're a programmer, it has a fairly straightforward architecture under the hood, so it's generally pretty easy to create your own custom functionality. It's not perfect by any means, but much better than most of the other large PHP CMS's I've worked with (maybe with the exception of SilverStripe, but Silverstripe doesn't hold a candle to C5 on the editing UI side of things).
So there you go -- a mountain of text to put your wall of text to shame :)
Hope that helps, and definitely come by the Concrete5 forums if you have more questions.
-Jordan