compara esta línea que pones
 proveedor.addItem({label:lista[n].attributes.nombre, data:attributes.ruta});
con ésta que te sugerí
proveedor.addItem({label:lista[n].attributes.nombre, data:
lista[n].attributes.ruta}); 
ahora en el listener, tienes varias formas de acceder al valor del elemento seleccionado 
Código:
 alSeleccionar.change = function(evento) {
	//tomando el valor directamente
	trace(mi_lista.value);
	//através del parámetro que en este caso llamaste: 'evento'
	trace(evento.target.value);
	//o un poco más laboriosamente
	trace(mi_lista.getItemAt(mi_lista.selectedIndex).data);
};
  NOTA. el array 
proveedor lo creamos temporalmente, sólo para llenar la lista, luego de terminada la función 
llenar_lista ese array ya no existe 
:D 
PD. y al generar el php, hazlo como xml y utf-8 
 Código PHP:
    <?php
require_once("../conf.php");//conexion a base de datos
$sql=mysql_query("SELECT * FROM multimedia_video",$conexion) or die (mysql_error());
 
$mostrar='<?xml version="1.0" encoding="UTF-8"?>
<lista_videos>';
while($row=mysql_fetch_assoc($sql)) {
    $mostrar.='<video nombre="'.$row["titulo"].'" ruta="'.$row["archivo"].'" />';
}
$mostrar.='</lista_videos>';
 
//cabecera XML UTF-8
header('Content-type: text/xml; charset=UTF-8');
//imprimimos el xml en formato UTF-8
echo utf8_encode($mostrar);
 
mysql_free_result($sql);
?>    
  :D ora sí