Index is not stored inside database, conventional backup does not work here (you are not removing anything from db).
I just wish to correct myself here, references to duplicate keys are stored inside it, of course, otherwise it wouldn't make sense. But, the index data itself is outside database. Creating a backup will keep the database with the old problem unsolved, but you could not find anything suspicious just by comparing ~ near the same db file size.
I test the script and seems to have worked. But now i'm opening the Indexes, i don't see any. Am i missing something ? Is this how it must be ?
I think that it looks fine to me, you have removed duplicates. You can run manual check with the SHOW INDEX query and you should get the exact same result listed in your screenshot (few posts above teseo gave an example).