If you look at the Bookings Services collection, the field you are referring to is ID(_id) field.
https://support.wix.com/en/article/corvid-wix-bookings-services-collection-fields#id-_id
ID (_id)
Description : The service ID that was created by the server. This is a system field and is hidden by default.
Type : Text
Can connect to data : Yes
Can use in dynamic page URL : No
Can be sorted : Yes
Can be filtered : Yes
Read-only : Yes
However, you are using the Wix Data Query funcion of contains() which is looking for something that is contained inside that ID field like a word for example as shown in the example code in the API reference.
In your code you are looking in the _id field which is correct, although you are simply looking for service_id in that field and as it is a service ID that was created by the server, then it would be entered into the field as shown at the bottom of this post.
Unless you have it written in your code before this section where you have defined what service_id actually is and as you have not pasted your full code used we can’t see that currently.
Something that they have done in this tutorial here in their repeater with the line of
const serviceId = event.context.itemId;
https://support.wix.com/en/article/corvid-tutorial-creating-a-custom-bookings-experience
https://www.wix.com/corvid/reference/wix-data.WixDataQuery.html#contains
wixData.query("myCollection")
.contains("description", "some words")
contains( )
Refines a query or filter to match items whose specified property value contains a specified string.
Description
The contains() function refines a WixDataQuery or WixDataFilter to only match items where the value of the specified property contains the specified string. Matching with contains() is not case sensitive, so “text” does contain “Tex”.
You can use contains() with a property whose value is a String or a Reference. For properties of type reference it is recommended that you use the eq() function instead of contains(). With properties that are References, contains() matches by the ID of the referenced item as a String.
So currently, you are doing the first option in the contains() function description, whereas you would actually be better off using the second option and making use of the eq() function so that you can find the exact match that equals the service_id that you are looking for.
https://www.wix.com/corvid/reference/wix-data.WixDataQuery.html#eq
Finally, have a read of the actual Wix Bookings API reference itself as it does state there…
wix-bookings-frontend - Velo API Reference - Wix.com
Call the getServiceAvailability() function using the selected service’s Service ID (_id) value. (Optionally, you can pass a AvailabilityOptions object to change the limits on the slots that are returned.)
if you look at getServiceAvailabilty function too, you will see that you get this returned as the id value too - “_id”: “eyIjoxN2xhc3NJbnN0YW5jZUlkIjoiNjc4ZDYyMzItZ”,
wix-bookings-frontend - Velo API Reference - Wix.com