Here's an attempt (without select)
lst = {1, 2, 2, 1, 2, 5, 2, 4};
n = 4;
p = 1;
Flatten[If[Abs[Take[#, -1] - Mean[Drop[#, -1]]][[1]] > p *StandardDeviation[Drop[#, -1]],
Take[#, -1], {}] & /@ Partition[lst, n + 1, 1, 1]] // First
Alternatively with Select.
Select[Partition[lst, n + 1, 1, 1],
Abs[Take[#, -1] - Mean[Drop[#, -1]]][[1]] > p*StandardDeviation[Drop[#, -1]] &]
// First // Last
For a more efficient implementation - see Mr Wizard's answer