“For values other than 1 then the function recursively calls itself. You need to follow the call path through.”
‘recursion’ is the function calling itself, so ‘recursively calls itself’ is just confusing you.
What that is telling you is that when you call it with (1), it just does something then stops. When you call it with something other than (1), it will go to the other half of the ‘if’ statement and work out the answer by calling itself.
Trace it through until you get to a recursive call – like P1(n-1); write down your value of ‘n’, go back to the start and run through with the new value of n. When you have finished, you will return to where you were before, and use your previous value of n.
This is called pushing and popping the call stack, it is how most languages manage control flow.