I haven't seen the video's. But I was wondering why nothing at all seems to be sorted. I tried this:

and I would have expected to see at least one swap, since "222".length() > "33".length(). But it doesn't happen.

Now, as the video no doubt makes clear, the biggest problem with your Comparator is that it is not symmetric, i.e. compareTo(x, y) != compareTo(y, x) and not reflexive (is compareTo(x, x) == 0?)

For instance, compareTo("222", "33") gives 1, since 3 is obviously bigger than 2, but compareTo("33", "222") returns 0, meaning they are equal. So the result of this comparison is in what order

Java compares the two, and I do not know that. It is therefore impossible to predict what the result of the sort will be. I put some print statements into your code, to see what elements get compared in what order. See if the output explains the result.

Thus: at least make sure that you compareTo or the Comparator that you use obeys the three laws: reflexive, symmetric and transitive.