Qué tal,
es porque aunque le cambies el valor a la variable al cabo de un segundo, la función yá se ha ejecutado y no se entera del cambio, habrías de volver a llamar a la función. Pero si vuelves a llamar a la función te pondrá de nuevo la variable a false, pues es la primera línea que lee.
Saca la primera línea fuera de la función y agrega al setTimeout que ejecute de nuevo la función
var permiso= false;
function activar(nombreImagen) {
nombreImagen2 = nombreImagen
setTimeout("permiso=true;activar(nombreImagen2)",1 000);
if ((document.images) && (permiso == true)) {
document[nombreImagen].src=activado.src; }
}
prueba así