Has probado a usar paréntesis en la SQL?? ¿Estas seguro de que la variable filtro_busqueda te llega con el valor deseado?
Código PHP:
$sql = "SELECT * FROM " . $nombre_tabla . "
WHERE
(titulo like '%".$buscar."%' OR
caracteristicas LIKE '%".$buscar."%' )
AND estado LIKE '".$filtro_oferta."'
ORDER BY visitas DESC";