Potersti modifcare la funzione in modo che renda il puntatore al vettore, ma devi stare attento perchè come hai scritto tu il vettore all'uscita dalla funzione viene dealocato, quindi non è piu raggiungibile fuori dalla funzione in cui è definita...

potresti fare una cosa del genere...

codice:
#include <stdio.h> 
#include <stdlib.h>


char * miafunzione( char ); 

int main () { 

	
	char * prova = ( char *)  miafunzione('g'); 

	printf("%s", prova); 

	return 0; 

}


char * miafunzione (char miocarattere)
{ 

char * matrice = (char *)malloc(4); // 4 perchè metti 4 elementi 

matrice[0]='a';
matrice[1]=miocarattere;
matrice[2]='b';
matrice[3]='\0';

return matrice;

}