Hi Kayla,
Looking at your screenshot, there is the stop condition between the second (0x0D) and third byte (0x3B). This is incorrect.
You will likely need to modify the HAL_I2C_Master_Transmit() function as it sends the stop condition after the data (0x0D). So you need to change it so that SDA transitiones to high before the SCL goes high in order to eliminate this stop condition.
The transaction should look as follows:
1. Send a start sequence
2. Send 0x3A // MMA8452Q slave address with the R/W bit low or 0x1D << 1
3. Send 0x0D // Address of the WHO_AM_I register
4. Send a start sequence again (repeated start)
5. Send 0x3B // MMA8452Q slave address with the R/W bit high or (0x1D << 1) | 0x01
6. Read the data byte from WHO_AM_I register
7. Send NAK and the stop sequence
Here is an example for the MMA8652FC (Device ID = 0x4A) as I do not have access to the MMA8452Q right now.

I hope it helps!
Best regards,
Tomas