O sea, un SP parametrizado común y corriente...
Hubieses empezado por allí. Cuando decías "que tome una variable de PHP", en realidad a lo que te referías era
que recibiera un parámetro de entrada.
OK. El tema es que lo que recibe no es la
variable sino el
valor de la misma. Eso es un error conceptual, porque el SQL no interactúa con los lenguajes en sí sino que recibe del conector una llamada parametrizada. En otras palabras, el SQL es independiente del lenguaje de programación. A no confundir.
Como sea, me alegro que encontraras la solución.