Thank you very much for your response. It may indeed be due to the "Legacy" option, but I'm still unclear about the specific effects of using "Legacy". This is because I'm not familiar with how the ValueQ function behaved in previous versions. Additionally, I'm puzzled as to why ValueQ[a[b]] returns True, even though a[b] itself hasn't been assigned a value.
Is there any documentation available for older versions? Or is there another method to understand how ValueQ worked in previous versions? I noticed in the "History" section it only mentions updates to the function, but where can I find specific details about what those updates entail?