Where can I read about views for MySQL?
A1.  You don't have to do that, it's pretty arbitrary.  The column alias just renames the id column.

A2. CONCAT() and GROUP_CONCAT are very different -- CONCAT('a','b','c') is just a function that would evaluate to 'abc'  GROUP_CONCAT() is an aggregate function that works with GROUP BY;  for each group of rows that you "roll up" into a group, GROUP_CONCAT() will create a string based on the value for each row in that group.

A3. JOIN is just shorthand for INNER JOIN

A4. ON defines how the tables are joined.  Each set of possible combination rows are examined, and each combination where the ON clause evaluates to true, then you get a match.  Visual Join Explanation

A5. I can't find your actual question here.

A6. No, a view doesn't sound like the right approach.  If you're searching for the same thing in many tables, then all that stuff should probably be in one tables.  But that's a generalization, you haven't described nearly enough about your actual project to give a clear answer.

A7.  This question is answered other places.