You shouldn't set unique if it is not unique! Actually I'm surprised in let you. Doesn't sound right to me. Maybe it overrode unique because it was obvious from the current values that it was not and it will have built the index so there are duplicate values!
The index will make a big difference. Previously it had to traverse the whole database to locate the records - the index allows it to get to the relevant records quickly.
The following query should give you the values for the last day
SELECT v1.timeset AS timeset,
v1.name AS v1name, v2.name AS v2name,
ROUND((v2.value/v1.value),4) as v3value;
FROM values_daily v1
LEFT JOIN values_daily v2 ON v2.name='$c2' AND v2.timeset = v1.timeset
WHERE v1.name = '$c1' and v1.timeset > ADDTIME(NOW(), '-1 00:00:00.0');
ORDER BY v1.timeset
It will not give missing time slots. Does the charting software really require them?