Tendrias que poner parentesis en las querys del bucle
Código PHP:
if($i == 0) $link .= "(nombre LIKE '%$palabra[$i]%' OR descripcion1 LIKE '%$palabra[$i]%')";
else $link .= "AND (nombre LIKE '%$palabra[$i]%' OR descripcion1 LIKE '%$palabra[$i]%')";
Combinar AND y OR sin parentesis trae estas cosas, el AND tiene mas prioridad que el OR es como la multiplicacion y la suma
a * b + c * d + e
no es lo mismo que
a * (b + c) * (d + e)