si quieres condicionar los no importantes a la no existencia de los importantes puedes primero recuperar la cantidad de registros importantes con un select count(*) .... where importante = 'si'
y dependiendo del resultado haces uno u otro select...
lo otro que debes tener en cuenta es que:
select * from noticias order by id desc
contempla todos los registros importantes y no importantes,
otra forma un poco mas "elegante" de hacerlo es ordenar tu select no por el id sino por la columna importante
select * from noticias order by importante desc, id desc
de esta manera te aseguras que en caso de haber importantes sean las primeras en mostrarse y de no haberlo tendras las que no son importantes en tu resultado...