Ahora toca una explicación de tu código .. disculpa que sea así .. pero realmente no explicas nada .. hay que "sonsacarte" las cosas y así como veras ni se avanza ni se resuelve tu problema.
Por el código que presentas . .entiendo que el "select" de HTML:
<select name="seleccion_productos" size="7" id="seleccion_productos">
Se van agregando "option" al mismo (en forma dinámica por las funciones javascript que usas).
OK .. si es así .. al final del proceso "seleccionarías" una opción de esas .. por que ese "select" no es "multiple" y para que en PHP puedas tomar todas las opciones -selecionadas- (una o varias) tendría que ser tratado como un "array" y eso se hace definiendo el "name" de elemento "select" como []
Código PHP:
<select name="seleccion_productos[]" size="7" id="seleccion_productos" multiple ></select>
Así en PHP tendrías un array que recorrer (para obtener todas las opciones seleccionadas) y a su vez verificar el n° de elementos entregados (con un count() de funciones de array's comunes) o un empty() como ya te comenté antes.
Realmetne si explicas más claro el procedimiento que sigues .. que o cuantos valores selecionas o esperas seleccionar o como quieres que trabaje ese punto tu código será lo ideal. En definitiva si tu defines el "objetivo" de lo que deseas hacer ya podríamos ver si tu código lo cumple o no.
Un saludo,