Have you tried with parentheses:
Cases[{"u1", "p1"}, _?(StringStartsQ[#, "u"] &)] Cases[{"u1", "p1"}, _?(StringStartsQ["u"])]
Yup, exact way to do it!