Edit: Miss understood your question earlier. As commented by @Egrettal you can do the following.
from qiskit import QuantumRegister, ClassicalRegister, QuantumCircuit
qc1 = QuantumCircuit(1, name='qc1')
qc1.x(0)
print(qc1)
qc2 = QuantumCircuit(1, name='qc2')
qc2.h(0)
qc2.append(qc1.to_gate(), [0])
qc2.z(0)
print(qc2)
xs_gate = qc2.to_gate()
cxs_gate = xs_gate.control()
circuit = QuantumCircuit(2)
circuit.append(cxs_gate, [0,1])
print('\n New circuit with controlled:\n',circuit)
print('\n Decomposed new circuit:\n', circuit.decompose())
Which will output:
┌───┐
q_0: ┤ X ├
└───┘
┌───┐┌─────┐┌───┐
q_0: ┤ H ├┤ qc1 ├┤ Z ├
└───┘└─────┘└───┘
New circuit with controlled:
q_0: ───■───
┌──┴──┐
q_1: ┤ qc2 ├
└─────┘
Decomposed new circuit:
┌────────┐ »
q_0: ┤ P(π/2) ├──■───────────────────■───────────────────────────■──»
├────────┤┌─┴─┐┌─────────────┐┌─┴─┐┌──────────┐┌─────────┐┌─┴─┐»
q_1: ┤ P(π/2) ├┤ X ├┤ U(0,0,-π/2) ├┤ X ├┤ U(0,0,0) ├┤ RY(π/4) ├┤ X ├»
└────────┘└───┘└─────────────┘└───┘└──────────┘└─────────┘└───┘»
« ┌──────┐ »
«q_0: ──────────────■──┤ P(0) ├──■────────────────■────────────────■──»
« ┌──────────┐┌─┴─┐├──────┤┌─┴─┐┌──────────┐┌─┴─┐┌──────────┐┌─┴─┐»
«q_1: ┤ RY(-π/4) ├┤ X ├┤ P(0) ├┤ X ├┤ U(0,0,0) ├┤ X ├┤ U(0,0,0) ├┤ X ├»
« └──────────┘└───┘└──────┘└───┘└──────────┘└───┘└──────────┘└───┘»
« ┌────────┐
«q_0: ┤ P(π/2) ├──■───────────────────■──────────────
« ├────────┤┌─┴─┐┌─────────────┐┌─┴─┐┌──────────┐
«q_1: ┤ P(π/2) ├┤ X ├┤ U(0,0,-π/2) ├┤ X ├┤ U(0,0,0) ├
« └────────┘└───┘└─────────────┘└───┘└──────────┘
qc2.append(qc1.to_gate(), [0])
$\endgroup$