Since IN() function is not a good way to retrieve fields with comma delimited values unless it’s the exact string, we will use FIND_IN_SET() function to retrive comma delimited integer values which points question_id numbers.
/***  ***/

SELECT *
FROM
`educa_exam` AS `ex`,
`educa_question` AS `eq`
WHERE `ex`.`exam_id` = 2
AND FIND_IN_SET(`eq`.`question_id`, `ex`.`exam_questions`)
ORDER BY FIND_IN_SET(`eq`.`question_id`, `ex`.`exam_questions`)

/*** With LEFT JOIN***/

SELECT *
FROM
`educa_exam` AS `ex`
LEFT JOIN `educa_question` AS `eq` ON FIND_IN_SET(`eq`.`question_id`, `ex`.`exam_questions`)
WHERE `ex`.`exam_id` = 1
ORDER BY FIND_IN_SET(`eq`.`question_id`, `ex`.`exam_questions`)

Here is the sample mysql tables for above queries
mysql> select exam_id, exam_title, exam_questions from educa_exam;
+---------+---------------+----------------+
| exam_id | exam_title    | exam_questions |
+---------+---------------+----------------+
|       1 | deneme exam 1 | 1,2,5          |
|       2 | deneme exam 2 | 1,4,8          |
+---------+---------------+----------------+

mysql> select question_id, question_title from educa_question;
+-------------+----------------+
| question_id | question_title |
+-------------+----------------+
|           1 | question1      |
|           2 | question2      |
|           3 | question3      |
|           4 | question4      |
|           5 | question5      |
|           6 | question6      |
|           7 | question7      |
|           8 | question8      |
+-------------+----------------+