Your question is not really clear. That is because you have not shown the desired result.
In your query you are selecting a column of recommended movie titles and another with votes. However, these are not related, as you didn't specify an order. So the first recommended movie may have the fifth vote shown for instance. And even if the votes were sorted by movie, that would still be hard to read.
So start with how the result would ideally look like. Only then write the query.
Example:
Expected result:
movie_title | roles | recommendations
------------------+--------------------------------+------------------------
The Dark Knight | Christian Bale (Bruce Wayne / | The Dark Knight Rises (7.5),
| Batman), Michael Caine (Alfred | Batman Begins (7.5), Iron
| Pennyworth), ... | Man (7.3), ...
So we need an aggreation from the cast table (all roles per movie) and one from the recommendation table (all recommendations per movie). Do the aggregations first and then join the results:
SELECT
m.movie_title,
c.roles,
r.movies as recommendations
FROM tmdb_movies m
LEFT JOIN
(
SELECT
cast_tmdb_id as movie_id,
GROUP_CONCAT(CONCAT(cast_name, ' (', cast_character, ')') SEPARATOR ', ') as roles
FROM cast
GROUP BY cast_tmdb_id
) c ON c.movie_id = m.tmdb_id
LEFT JOIN
(
SELECT
recommendations_tmdb_id as movie_id,
GROUP_CONCAT(CONCAT(recommendations_title, ' (', recommendations_vote_average, ')')
SEPARATOR ', ') as movies
FROM recommendations
GROUP BY recommendations_tmdb_id
) r ON r.movie_id = m.tmdb_id
WHERE m.tmdb_id = 1;
Here is the rextester link: http://rextester.com/FHA48503