Mysql запрос на выборку?
Старая проблема и старое прямое решение — вложенные запросы.
select * from p where 
id_p in (select distinct(id_p) from pt andpt_val in (4447 ,4448)) 
and 
id_p not in (select distinct(id_p) from pt andpt_val in (556, 535)) 
Лефт джоин для выдирания сразу и pt значений можно добавить по вкусу.
Но эта штука будет тяжелой… но без смены структуры по другому никак.
Наверное, так проще всего два раза джойнить таблицу pt.