I would also like to know why it is voluti and not voluto? I keep seeing examples of participles changing to match the gender/number when they are being used with avere, but the information I have read on this elsewhere suggests this should only happen when the verb essere is used? It is very confusing!
I found out! So it is because whenever you have a direct object pronoun in the third person (lo, la, li, le), you have to match the past participle to that pronoun. Since "li" means "them (masc.)", the past participle "voluto" must match "li". So, there you have it: "Non li ho voluti". (This is the case with either essere or avere.)
I suspect that 'did not want' (simple past tense) is used much much more than 'have not wanted' (present perfect tense) The latter may fit a few contexts, but mostly it's the mark of a non-native speaker. Duo repeats this fault in lots of other examples too; probably someone who thinks avere always means 'have', which isn't so in compound tenses.
Volere requires a direct object (pronoun that answers 'who?' or 'what?'). So, you must use the second person singular object in order to say "I have not wanted you." You would need to say "Non ti ho voluto." You might be thinking of 'gli' which sounds the same but means 'to you' instead. 'Li' only means 'them' (masculine).