Mai utilizzata la classe list, ma deduco che i nel ciclo è un puntatore, void, quindi puoi fare:

cout << ((Compressione*)(i))->getTipo() ;

senza dereferenziare i.

EDIT: anzi, per usare le potenzialità del polimorfismo,

cout << ((Proprietà*)(i))->getTipo() ;