Como você está consultando a tabela com '*', você sempre obterá todas as colunas em ambas as tabelas. Para omitir esta coluna, você terá que nomear manualmente todas as colunas que deseja consultar. Para atender sua outra necessidade, você precisa simplesmente inserir uma coluna fictícia para cada cláusula na consulta união. Abaixo está um exemplo que deve funcionar para permitir o que você deseja -
SELECT customer.customerid, customer.customername, customer.customeraddress, newspapername, magazinename, enddate, publishedby
FROM customer
INNER JOIN
(select customerid, newspapername, null Magazinename, enddate, n.publishedby
from newspapersubscription ns, newspaper n
where publishedby in(select publishedby
from newspaper
where ns.newspapername = n.NewspaperName)
UNION
select customerid, null newspapername, Magazinename, enddate, m.publishedby
from magazinesubscription ms, magazine m
where publishedby in(select publishedby
from magazine
where ms.Magazinename = m.MagazineName))
on customer.customerid = customerid
ORDER BY customer.customerid;