Of course it's a joke, but the problem with that argument isn't that imaginary numbers don't exist, but that the rule sqrt(a * b) = sqrt(a) * sqrt(b) doesn't hold for them. Or, rather, it
does hold, but (as we should for real numbers, too!) we must regard sqrt(a) as being not a single number but a
set of square roots of a (something we avoid doing in the real case by preferring non-negative numbers—a convenience not available for the complex numbers).
With this understanding, the rule sqrt(a * b) = sqrt(a) * sqrt(b) holds, and your instantiation of it (with a = b = −1) shows that 1 and −1 are both equally valid square roots of 1, which is certainly true.