Firstly, I suspect (correct me if I'm wrong) that your item is selecting the first item because the item is defined with Display Null Value set to No; internally, however, the item is probably NULL, but the list item cannot show it so it just shows the first list value. But I probably wouldn't change this setting.
To set the default value for a Select List item, set Default Value Type to PL/SQL Function Body, then enter your SQL query (that returns a single value) in the Default attribute for the item, with suitable PL/SQL around it, e.g.:
DECLARE
v_value VARCHAR2(<your data max length>);
BEGIN
SELECT <yourcolumn>
INTO v_value
FROM <yourquery>;
RETURN v_value;
END;