buenas...
lo que pasa es que la peticion ajax es asincrona. significa que el proceso javascript continua independientemente si la peticion ajax se haya llevado a cabo o no. por tanto, para el momento en que la funcion devuelve
reponsevalue, la peticion ajax no ha finalizado de modo que la funcion devuelve un string vacio. puedes replantear tu estrategia o hacer que la peticion sea sincrona. en la peticion sincrona javascript se detiene hasta que la peticion ajax finalice. para ello, en el tercer parametro de la inicializacion de ajax le pasas el boolean false.