Doing this isn't really viable. Comma separated lists are generally a very bad idea in a database due to problems like this.
It is potentially possible, if not quick or flexible.
The following does it by generating a list of numbers from 1 to 1000 (or 1 more than the number of commas). It only works if the max number of comma separated values is less than 1000. Can easily be expanded to cope with larger numbers but will become even less efficient as it is expanded.
It then uses that range of numbers to extract a value from the comma separated list.
Once that is done the AVG function can be used.
SELECT uID,
AVG(individual_responded_in_hour)
FROM
(
SELECT uID,
CAST(SUBSTRING_INDEX(SUBSTRING_INDEX(text_responded_in_hour, ',', (hundreds.aCnt * 100 + tens.aCnt * 10 + units.aCnt + 1)), ',', -1) AS SIGNED) AS individual_responded_in_hour
FROM some_table
CROSS JOIN (SELECT 1 AS aCnt UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9 UNION SELECT 10) units
CROSS JOIN (SELECT 1 AS aCnt UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9 UNION SELECT 10) tens
CROSS JOIN (SELECT 1 AS aCnt UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9 UNION SELECT 10) hundreds
WHERE (hundreds.aCnt * 100 + tens.aCnt * 10 + units.aCnt) <= (LENGTH(text_responded_in_hour) - LENGTH((REPLACE(text_responded_in_hour, ',', '')))
) sub0
GROUP BY uID
It would be possible to do this using a custom written MySQL function which might be more efficient.
But either way I suggest that the complexity of doing this is more of a good reason to not store the values in a comma separated list.