Potrzebujesz left join
zamiast right join
możesz też zmienić położenie tabeli
SELECT sum(steps), date(from_unixtime(td.db_date)) as stepdate
FROM time_dimension td
LEFT JOIN userdata u
ON date(from_unixtime(u.in_date)) = td.db_date
WHERE user_id = 8
GROUP BY date(from_unixtime(td.db_date))
ORDER BY stepdate DESC;
Jednak zakłada to time_dimension
stół traktowany jako stół kalendarzowy.