As you say correctly, this means "Q repeats zero or more times." In this case, its times are zero, so you are essentially trying to match ""in your input line. Since it IsMatchdoes not care about where it matches, it can match an empty string anywhere in your input string, so it returns true.
, , ^ $: "^Q*$".
Regex regex = new Regex("^Q*$");
Console.WriteLine(regex.IsMatch("Movie")); // false
Console.WriteLine(regex.IsMatch("QQQ")); // true
Console.WriteLine(regex.IsMatch("")); // true