mysql - query to fill in missing datetime values
Filling in 'missing' rows is done via an extra table with all possible values, plus a LEFT JOIN:

Create have a table all_minutes with all possible minutes (in some finite range).  (If using MariaDB, use a "Sequence" table.)  Then

SELECT a.time,
       IFNULL(s.data, 0)  AS `data`  -- assuming you want 0, not NULL
    FROM all_minutes AS a
    LEFT JOIN ( SELECT
            LEFT(stat_start,16) AS `time`,  -- eg, '2017-04-07 11:03'
            AVG(`stat_values`) AS `data` 
        FROM stats
        WHERE stat_Start BETWEEN NOW() - INTERVAL 1 HOUR AND NOW()
        GROUP BY `time`
        ORDER BY `time`    -- note a change here
              ) AS s    ON s.time = a.time
    WHERE a.time BETWEEN ... AND ...; -- whatever range you need


Note:  Both tables should exclude or include the :00 for seconds.  Otherwise (I think) there could be some difficulty in doing the = in the ON.