Não tenho certeza se entendi totalmente o objetivo, mas eu tentei...
select
consultas.id as a,
consultas.clasificacion as cl,
consultas.paciente_id as b,
consultas.created,
imc_kg_m2 as im
from consultas
join signos_sintomas on signos_sintomas.consulta_id = consultas.id
join (select pacientes.id from pacientes where pacientes.id < 30) p on consultas.paciente_id = p.id
where imc_kg_m2 = (select imc_kg_m2 from consultas where created = (select max(created) from consultas where imc_kg_m2 is not null));
Para resolver o erro, criei um alias para as subconsultas e as juntei. Eu removi um porque eu não conseguia descobrir por que ele estava lá. Eu também adicionei o
where
para fazer algo parecido com o que você está solicitando. Comente se não faz o que você quer.