How to display InnerBlocks in render callback

save (JS)

By default, the save function outputs the content using this as return: <InnerBlocks.Content />

This part is ok, you should still return <InnerBlocks.Content /> in your save function:

save: props => <InnerBlocks.Content />

Source

If you are using InnerBlocks in a dynamic block you will need to save the InnerBlocks in the save callback function using <InnerBlocks.Content/>

https://developer.wordpress.org/block-editor/tutorials/block-tutorial/creating-dynamic-blocks/

render_callback (PHP)

function render($attributes, $content)
{
    return $content;
}

Source

Whatever you return in save function is in $content variable of PHP render function`

https://github.com/WordPress/gutenberg/issues/6751#issuecomment-451550734