it looks like you're trying to do two queries, and then intersperse their results by date order... you probably need to UNION. then use a subselect in order to ORDER the results.
SELECT SQL_CALC_FOUND_ROWS, *
FROM (
SELECT
user.name,
'picture' as type,
user_visit.date_visit as date,
user_picture.date_picture as data1,
user_picture.description as data2
FROM
user
JOIN user_visit ON (user_visit.id_user_to = user.id_user)
JOIN user_picture ON (user_picture.id_user_to = user.id_user)
WHERE user_visit.id_user_from = 1
UNION
SELECT
user.name,
'question' as type,
user_question.date_question as date,
user_question.question as data1,
user_question.answer as data2,
FROM
user
JOIN user_question ON user_question.id_user_to = user.id_user
WHERE user_question.id_user_from = 1
)
ORDER BY date;