BGE: How to set the Constraint Axis to an object coordinate
Does the object need to be parented? I will make an example that presumes it doesn't. If you explicitly need parented objects, this script will not work as it is.

If you transform the orientation matrix of the source object into an euler and then pass it on to the target object's world orientation as a matrix, you should get what you are looking for.

In a nutshell: get matrix -> change to euler -> modify euler -> change to matrix -> give to the object you want

Hook this up to a TRUE level pulse triggering sensor with a frequency of your choice.

import bge
import mathutils

sce = bge.logic.getCurrentScene()
face = sce.objects['Facer']
facY = face.worldOrientation.to_euler()[1] #Now we have the Y-axis rotation
facTar = sce.objects['Facingtarget']       #This is the target object we modify
newRotList = [facTar.worldOrientation.to_euler()[0],facY,facTar.worldOrientation.to_euler()[2]] #Now we have a list
newRot = mathutils.Euler(newRotList).to_matrix()   #Now we have the matrix we need
facTar.worldOrientation = newRot    #The orientation has been modified