Esta é apenas uma agregação condicional:
select pn, sum(loc = 'a') as a, sum(loc = 'b') as b
from table1
group by pn;
Se você tiver uma lista desconhecida de
loc
valores, você pode precisar de uma consulta dinâmica. Google "Pivot dinâmico MySQL".