Since you negate the exit status of patch for the if statement, the if statement could be read as "if patch fails, output the string Pass".
The if statement tests whether the given command succeeds (true) or fails (false). You can remember this and forget about the rest in this answer if you wish.
When the command fails, its exit status is non-zero, possibly allowing for a closer inspection of the reason for failure. Provided that the utility assigns any meaning to the actual value returned (as e.g. curl and rsync do, see the very end of their manuals), a script may choose to handle an error appropriately.
If the command's exit status is zero, it signals the shell that the utility finished successfully.
In your case, since you negate theThe exit status is more of patch for"an error code" rather than "a boolean value" or "true or false". The true/false boolean test is performed internally by the if statement, testing the if statement could be read as "ifexit status to see whether the utility had a failure condition. If not patch fails(exit status is zero), output the stringtest is Pass"true, i.e., the utility did not fail.