No código transcrito abaixo, o if está fora do for, ocasionando a geração do gráfico em branco.
valores_silhueta = []
quantil_plot = []
for quantil in faixa_quantil:
bandwidth = estimate_bandwidth(df, quantile = quantil)
agrupador = MeanShift(bandwidth = bandwidth)
labels = agrupador.fit_predict(df)
if (len(np.unique(labels)) < len(df) and len(np.unique(labels)) > 1):
media_silhueta = silhouette_score(df, labels)
valores_silhueta.append(media_silhueta)
quantil_plot.append(quantil)
O if deve estar dentro do for para funcionar corretamente.