IF
não pode ser usado em SQL, isso só é válido para PL/pgSQL. Você precisa fazer isso com SQL dinâmico dentro de um bloco PL/pgSQL anônimo. Algo como:
do
$$
declare
l_count integer;
begin
select count(*)
into l_count
from pg_class c
join pg_namespace nsp on c.relnamespace = nsp.oid
where c.relname = 'mytable'
and c.relpersistence = 'u'
and nsp.nspname = 'public';
if l_count = 1 then
execute 'drop table mytable';
end if;
end;
$$
Você provavelmente deve estender o
select
instrução para unir em pg_namespace
e inclua o nome do esquema em sua condição where para certificar-se de que você não está descartando acidentalmente uma tabela do esquema errado.