Every piece of data in a YANG model must be provided by some data provider - the default, if no callpoint is present, is the internal data provider CDB. Having your callpoint on topContainer means that your data provider provides the data for the entire subtree rooted at topContainer - in particular, it provides the fruitList list, and ConfD will ask your data provider to enumerate the existing keys for that list by means of get_next invocations,
When you move the callpoint to the appleContainer, CDB becomes the data provider for all the data above that container - in particular, CDB will need to provide the fruitList list, and ConfD will ask CDB to enumerate the existing keys for that list by means of (internal) get_next invocations. Thus if no list entries exist in CDB, it means that there can’t be any data for any list entry, and there is nothing for ConfD to ask your data provider about.
Bottom line, you need to ensure that the relevant list entries exist in CDB in this case.