Boxplot (and boxchart) do not yet support datetimes (see here), so you need to work with numeric values (like datenums), as you are doing already. ytickformat will not work. To display ylabels in "m:ss" format, you will need to manually create a string array containing your labels and manually update the ylabels.
I elected to convert your datenums to minutes, as I found it easier to work with 0-3.5 instead of 738157.0000000000 - 738157.0024305555.
I also notice these plots automatically scale the y axis, so you need to explicitly set the limits you want to have. Finally, only datetimes support a "m:ss" format, so I elected to create a vector of datetimes, set the format, and convert to string to create the ylabels.
I noticed you are only interested in the times. I'm curious how you collected your data to include a date as well. I suspect these times were not collected on Jan 1, 2021 at midnight. To help make the yaxis values meaningful, I stripped away the date info using the timeofday function. I suspect that my code looks more complicated because I'm also formatting the data to what I want it to be. However, if the data were just time (durations, or time measured in seconds or decimal minutes) some of this would not be necessary. For more, see the Represent Dates and Times in MATLAB page.
Your format spec is forcing two digits for the minutes ('MM:SS'). The way to eliminate a leading zero is to only use one 'M'. However, it doesn't look like datetick supports that (see dateFormat inputs here).
The solution may be to use ytickformat instead. It supports single-digit minute formats (see here).