Mkay, the way an ALLEGRO_TRANSFORM works is that whatever you draw something, it will be moved in the direction of the transform.
So if you were to draw a box at (20, 30) while an ALLEGRO_TRANSFORM of (100, 400) is in effect, then it will be drawn at (120, 430).
However, it doesn't transform the position of your mouse cursor, which will always be given in screen coordinates. So for that, you'll want to use al_transform_coordinates().
So grab your mouse coordinates when you catch the ALLEGRO_MOUSE_EVENT:
float mouse_on_screen_x = current_event.mouse.x;
float mouse_on_screen_y = current_event.mouse.y;
Then later in your drawing code:
// build your transform here
al_translate_transform(&camera_transform, -camera_x, -camera_y);
// get convert the mouse position to world coordinates
float mouse_in_world_x = mouse_on_screen_x;
float mouse_in_world_y = mouse_on_screen_y;
al_transform_coordinates(&camera_transform, &mouse_in_world_x, &mouse_in_world_y);
// Now you can use mouse_in_world_x and mouse_in_world_y as the cursor on your screen
al_draw_circle(mouse_in_world_x, mouse_in_world_y, 5.0, al_color_name("dodgerblue"), 1.0);
 I made a few edits for clarity.